Space- and Time-Efficient Implementation of the Java Object Model

نویسندگان

  • David F. Bacon
  • Stephen J. Fink
  • David Grove
چکیده

While many object-oriented languages impose space overhead of only one word per object to support features like virtual method dispatch, Java’s richer functionality has led to implementations that require two or three header words per object. This space overhead increases memory usage and attendant garbage collection costs, reduces cache locality, and constrains programmers who might naturally solve a problem by using large numbers of small objects. In this paper, we show that with careful engineering, a high-performance virtual machine can instantiate most Java objects with only a single-word object header. The single header word provides fast access to the virtual method table, allowing for quick method invocation. The implementation represents other per-object data (lock state, hash code, and garbage collection flags) using heuristic compression techniques. The heuristic retains two-word headers, containing thin lock state, only for objects that have synchronized methods. We describe the implementation of various object models in the IBM Jikes Research Virtual Machine, by introducing a pluggable object model abstraction into the virtual machine implementation. We compare an object model with a twoword header with three different object models with single-word headers. Experimental results show that the object header compression techniques give a mean space savings of 7%, with savings of up to 21%. Compared to the two-word headers, the compressed space-encodings result in application speedups ranging from to . Performance on synthetic micro-benchmarks ranges from due to benefits from reduced object size, to on a stress test of virtual method invocation.

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Manipulation Control of a Flexible Space Free Flying Robot Using Fuzzy Tuning Approach

Cooperative object manipulation control of rigid-flexible multi-body systems in space is studied in this paper. During such tasks, flexible members like solar panels may get vibrated that in turn may lead to some oscillatory disturbing forces on other subsystems, and consequently produces error in the motion of the end-effectors of the cooperative manipulating arms. Therefore, to design and dev...

متن کامل

Fixed-point FPGA Implementation of a Kalman Filter for Range and Velocity Estimation of Moving Targets

Tracking filters are extensively used within object tracking systems in order to provide consecutive smooth estimations of position and velocity of the object with minimum error. Namely, Kalman filter and its numerous variants are widely known as simple yet effective linear tracking filters in many diverse applications. In this paper, an effective method is proposed for designing and implementa...

متن کامل

Reachability checking in complex and concurrent software systems using intelligent search methods

Software system verification is an efficient technique for ensuring the correctness of a software product, especially in safety-critical systems in which a small bug may have disastrous consequences. The goal of software verification is to ensure that the product fulfills the requirements. Studies show that the cost of finding and fixing errors in design time is less than finding and fixing the...

متن کامل

Space as a Semiotic Object: A Three-Dimensional Model of Vertical Structure of Space in Calvino’s Invisible Cities

Following the “spatial turn” of the last 3 decades in humanities and social sciences and the structure of semiotic object, this research studies space as the main semiotic object of Calvino’s (1972) Invisible Cities. Significance of this application resides in examining the possibility of providing a more concrete methodology based on the integration of Zoran’s (1984) 3 vertical levels of const...

متن کامل

An Evaluation of cJava System Architecture

In this work, we propose a new distributed run-time environment, which we called cJava, that enables multithread Java applications to execute in clusters transparently. Our implementation of cJava supports the distributed shared memory (DSM) which required significant extensions to the original Java virtual machine (JVM). First, a distributed object manager was incorporated to the JVM’s memory ...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2002